

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package converter;

/**
 *
 * @author MeMe
 */
public class matriz1 {
    private String[][] notas = new String[6][19];
    
       
    
    public static SplayBST<String, int[][]> arbol = new SplayBST<String, int[][]>();
    
    public matriz1(){//la siguiente matriz es para almacenar todas las notas que tiene una guitarra
//no se accede a la informacion de esta matriz, solo es para tener persistencia


        notas[0][0]="E3";
        notas[0][1]="F3";
        notas[0][2]="f3";
        notas[0][3]="G3";
        notas[0][4]="g3";
        notas[0][5]="A3";
        notas[0][6]="a3";
        notas[0][7]="B3";
        notas[0][8]="C4";
        notas[0][9]="c4";
        notas[0][10]="D4";
        notas[0][11]="d4";
        notas[0][12]="E4";
        notas[0][13]="F4";
        notas[0][14]="f4";
        notas[0][15]="G4";
        notas[0][16]="g4";
        notas[0][17]="A4";
        notas[0][18]="a4";
        
        notas[1][0]="B2";
        notas[1][1]="C3";
        notas[1][2]="c3";
        notas[1][3]="D3";
        notas[1][4]="d3";
        notas[1][5]="E3";
        notas[1][6]="F3";
        notas[1][7]="f3";
        notas[1][8]="G3";
        notas[1][9]="g3";
        notas[1][10]="A3";
        notas[1][11]="a3";
        notas[1][12]="B3";
        notas[1][13]="C4";
        notas[1][14]="c4";
        notas[1][15]="D4";
        notas[1][16]="d4";
        notas[1][17]="E4";
        notas[1][18]="F4";
        
        notas[2][0]="G2";
        notas[2][1]="g2";
        notas[2][2]="A2";
        notas[2][3]="a2";
        notas[2][4]="B2";
        notas[2][5]="C3";
        notas[2][6]="c3";
        notas[2][7]="D3";
        notas[2][8]="d3";
        notas[2][9]="E3";
        notas[2][10]="F3";
        notas[2][11]="f3";
        notas[2][12]="G3";
        notas[2][13]="g3";
        notas[2][14]="A3";
        notas[2][15]="a3";
        notas[2][16]="B3";
        notas[2][17]="C4";
        notas[2][18]="c4";
        
        notas[3][0]="D2";
        notas[3][1]="d2";
        notas[3][2]="E2";
        notas[3][3]="F2";
        notas[3][4]="f2";
        notas[3][5]="G2";
        notas[3][6]="g2";
        notas[3][7]="A2";
        notas[3][8]="a2";
        notas[3][9]="B2";
        notas[3][10]="C3";
        notas[3][11]="c3";
        notas[3][12]="D3";
        notas[3][13]="d3";
        notas[3][14]="E3";
        notas[3][15]="F3";
        notas[3][16]="G3";
        notas[3][17]="g3";
        notas[3][18]="A3";
        
        notas[4][0]="A1";
        notas[4][1]="a1";
        notas[4][2]="B1";
        notas[4][3]="C2";
        notas[4][4]="c2";
        notas[4][5]="D2";
        notas[4][6]="d2";
        notas[4][7]="E2";
        notas[4][8]="F2";
        notas[4][9]="f2";
        notas[4][10]="G2";
        notas[4][11]="g2";
        notas[4][12]="A2";
        notas[4][13]="a2";
        notas[4][14]="B2";
        notas[4][15]="C3";
        notas[4][16]="c3";
        notas[4][17]="D3";
        notas[4][18]="d3";
        
        notas[5][0]="E1";
        notas[5][1]="F1";
        notas[5][2]="f1";
        notas[5][3]="G1";
        notas[5][4]="g1";
        notas[5][5]="A1";
        notas[5][6]="a1";
        notas[5][7]="B1";
        notas[5][8]="C2";
        notas[5][9]="c2";
        notas[5][10]="D2";
        notas[5][11]="d2";
        notas[5][12]="E2";
        notas[5][13]="F2";
        notas[5][14]="f2";
        notas[5][15]="G2";
        notas[5][16]="g2";
        notas[5][17]="A2";
        notas[5][18]="a2";
        
        guardar();// este metodo almacena en el arbol las notas como la llave de busqueda y como valor una matriz de 4 por 2 que almacena el numero de cuerda con su respectivo traste. 
        
    }
    
    public void guardar(){
        String nota;
        //se instancian las matrices que almacenaran las cuerdas y sus trastes correspondientes a una nota. 
        String na1 = "a1";
        int[][] nota_a1= new int[4][2];
        int a1_cont =0;
        
        String na2 = "a2";
        int[][] nota_a2= new int[4][2];
        int a2_cont =0;
        
        String na3 = "a3";
        int[][] nota_a3= new int[4][2];
        int a3_cont =0;
        
        String na4 = "a4";
        int[][] nota_a4= new int[4][2];
        int a4_cont =0;
        
        String nA1 = "A1";
        int[][] nota_A1= new int[4][2];
        int A1_cont =0;
        
        String nA2 = "A2";
        int[][] nota_A2= new int[4][2];
        int A2_cont =0;
        
        String nA3 = "A3";
        int[][] nota_A3= new int[4][2];
        int A3_cont =0;
        
        String nA4 = "A4";
        int[][] nota_A4= new int[4][2];
        int A4_cont =0;
        
        String nB1 = "B1";
        int[][] nota_B1= new int[4][2];
        int B1_cont =0;
        
        String nB2 = "B2";
        int[][] nota_B2= new int[4][2];
        int B2_cont =0;
        
        String nB3 = "B3";
        int[][] nota_B3= new int[4][2];
        int B3_cont =0;
        
        String nB4 = "B4";
        int[][] nota_B4= new int[4][2];
        int B4_cont =0;

        String nc1 = "c1";
        int[][] nota_c1= new int[4][2];
        int c1_cont =0;
        
        String nc2 = "c2";
        int[][] nota_c2= new int[4][2];
        int c2_cont =0;
        
        String nc3 = "c3";
        int[][] nota_c3= new int[4][2];
        int c3_cont =0;
        
        String nc4 = "c4";
        int[][] nota_c4= new int[4][2];
        int c4_cont =0;
        
        String nC1 = "C1";
        int[][] nota_C1= new int[4][2];
        int C1_cont =0;
        
        String nC2 = "C2";
        int[][] nota_C2= new int[4][2];
        int C2_cont =0;
        
        String nC3 = "C3";
        int[][] nota_C3= new int[4][2];
        int C3_cont =0;
        
        String nC4 = "C4";
        int[][] nota_C4= new int[4][2];
        int C4_cont =0;
                
        String nd1 = "d1";
        int[][] nota_d1= new int[4][2];
        int d1_cont =0;
        
        String nd2 = "d2";
        int[][] nota_d2= new int[4][2];
        int d2_cont =0; 
        
        String nd3 = "d3";
        int[][] nota_d3= new int[4][2];
        int d3_cont =0;
        
        String nd4 = "d4";
        int[][] nota_d4= new int[4][2];
        int d4_cont =0;
        
        String nD1 = "D1";
        int[][] nota_D1= new int[4][2];
        int D1_cont =0;
        
        String nD2 = "D2";
        int[][] nota_D2= new int[4][2];
        int D2_cont =0;
        
        String nD3 = "D3";
        int[][] nota_D3= new int[4][2];
        int D3_cont =0;
        
        String nD4 = "D4";
        int[][] nota_D4= new int[4][2];
        int D4_cont =0;
        
        String nE1 = "E1";
        int[][] nota_E1= new int[4][2];
        int E1_cont =0;
        
        String nE2 = "E2";
        int[][] nota_E2= new int[4][2];
        int E2_cont =0;
        
        String nE3 = "E3";
        int[][] nota_E3= new int[4][2];
        int E3_cont =0;
        
        String nE4 = "E4";
        int[][] nota_E4= new int[4][2];
        int E4_cont =0;
        
        String nf1 = "f1";
        int[][] nota_f1= new int[4][2];
        int f1_cont =0;
        
        String nf2 = "f2";
        int[][] nota_f2= new int[4][2];
        int f2_cont =0;
        
        String nf3 = "f3";
        int[][] nota_f3= new int[4][2];
        int f3_cont =0;
        
        String nf4 = "f4";
        int[][] nota_f4= new int[4][2];
        int f4_cont =0;

        String nF1 = "F1";
        int[][] nota_F1= new int[4][2];
        int F1_cont =0;
        
        String nF2 = "F2";
        int[][] nota_F2= new int[4][2];
        int F2_cont =0;
        
        String nF3 = "F3";
        int[][] nota_F3= new int[4][2];
        int F3_cont =0;
        
        String nF4 = "F4";
        int[][] nota_F4= new int[4][2];
        int F4_cont =0;

        String ng1 = "g1";
        int[][] nota_g1= new int[4][2];
        int g1_cont =0;
        
        String ng2 = "g2";
        int[][] nota_g2= new int[4][2];
        int g2_cont =0;
        
        String ng3 = "g3";
        int[][] nota_g3= new int[4][2];
        int g3_cont =0;
        
        String ng4 = "g4";
        int[][] nota_g4= new int[4][2];
        int g4_cont =0;
                
        String nG1 = "G1";
        int[][] nota_G1= new int[4][2]; 
        int G1_cont =0;
        
        String nG2 = "G2";
        int[][] nota_G2= new int[4][2]; 
        int G2_cont =0;
        
        String nG3 = "G3";
        int[][] nota_G3= new int[4][2];  
        int G3_cont =0;
        
        String nG4 = "G4";
        int[][] nota_G4= new int[4][2];
        int G4_cont =0;
        for(int i=0; i<4;i++){
                    nota_G4[i][1]= 1000;
                    nota_G3[i][1]= 1000;  
                    nota_G2[i][1]= 1000; 
                    nota_G1[i][1]= 1000; 
                    nota_g4[i][1]= 1000;
                    nota_g3[i][1]= 1000;
                    nota_g2[i][1]= 1000;
                    nota_g1[i][1]= 1000;
                    nota_F4[i][1]= 1000;
                    nota_F3[i][1]= 1000;
                    nota_F2[i][1]= 1000;
                    nota_F1[i][1]= 1000;
                    nota_f4[i][1]= 1000;
                    nota_f3[i][1]= 1000;
                    nota_f2[i][1]= 1000;
                    nota_f1[i][1]= 1000;
                    nota_E4[i][1]= 1000;
                    nota_E3[i][1]= 1000;
                    nota_E2[i][1]= 1000;
                    nota_E1[i][1]= 1000;
                    nota_D4[i][1]= 1000;
                    nota_D3[i][1]= 1000;
                    nota_D2[i][1]= 1000;
                    nota_D1[i][1]= 1000;
                    nota_d4[i][1]= 1000;
                    nota_d3[i][1]= 1000;
                    nota_d2[i][1]= 1000;
                    nota_d1[i][1]= 1000;
                    nota_C4[i][1]= 1000;
                    nota_C3[i][1]= 1000;
                    nota_C2[i][1]= 1000;
                    nota_C1[i][1]= 1000;
                    nota_c4[i][1]= 1000;
                    nota_c3[i][1]= 1000;
                    nota_c2[i][1]= 1000;
                    nota_c1[i][1]= 1000;
                    nota_B4[i][1]= 1000;
                    nota_B3[i][1]= 1000;
                    nota_B2[i][1]= 1000;
                    nota_B1[i][1]= 1000;
                    nota_A4[i][1]= 1000;
                    nota_A3[i][1]= 1000;
                    nota_A2[i][1]= 1000;
                    nota_A1[i][1]= 1000;
                    nota_a4[i][1]= 1000;
                    nota_a3[i][1]= 1000;
                    nota_a2[i][1]= 1000;
                    nota_a1[i][1]= 1000;


        }

        
        for (int a =0; a<6; a++){
            for (int b=0; b<19;b++){
                nota = notas[a][b];
                
                if(nota=="a1"){
                   nota_a1[a1_cont][0]=a;
                   nota_a1[a1_cont][1]=b;
                   a1_cont++;
                }else if(nota=="a2"){
                   nota_a2[a2_cont][0]=a;
                   nota_a2[a2_cont][1]=b;
                   a2_cont++;
                } else if(nota=="a3"){
                   nota_a3[a3_cont][0]=a;
                   nota_a3[a3_cont][1]=b;
                   a3_cont++;
                } else if(nota=="a4"){
                   nota_a4[a4_cont][0]=a;
                   nota_a4[a4_cont][1]=b;
                   a4_cont++;
                }  
                else if(nota =="A1"){
                   nota_A1[A1_cont][0]=a;
                   nota_A1[A1_cont][1]=b;
                   A1_cont++;
                }  else if(nota =="A2"){
                   nota_A2[A2_cont][0]=a;
                   nota_A2[A2_cont][1]=b;
                   A2_cont++;
                }else if(nota =="A3"){
                   nota_A3[A3_cont][0]=a;
                   nota_A3[A3_cont][1]=b;
                   A3_cont++;
                }else if(nota =="A4"){
                   nota_A4[A4_cont][0]=a;
                   nota_A4[A4_cont][1]=b;
                   A4_cont++;
                }
                else if(nota =="B1"){
                   nota_B1[B1_cont][0]=a;
                   nota_B1[B1_cont][1]=b;
                   B1_cont++;
                }else if(nota =="B2"){
                   nota_B2[B2_cont][0]=a;
                   nota_B2[B2_cont][1]=b;
                   B2_cont++;
                }else if(nota =="B3"){
                   nota_B3[B3_cont][0]=a;
                   nota_B3[B3_cont][1]=b;
                   B3_cont++;
                } else if(nota =="B4"){
                   nota_B4[B4_cont][0]=a;
                   nota_B4[B4_cont][1]=b;
                   B4_cont++;
                }
                else if(nota =="c1"){
                   nota_c1[c1_cont][0]=a;
                   nota_c1[c1_cont][1]=b;
                   c1_cont++;
                } else if(nota =="c2"){
                   nota_c2[c2_cont][0]=a;
                   nota_c2[c2_cont][1]=b;
                   c2_cont++;
                } else if(nota =="c3"){
                   nota_c3[c3_cont][0]=a;
                   nota_c3[c3_cont][1]=b;
                   c3_cont++;
                } else if(nota =="c4"){
                   nota_c4[c4_cont][0]=a;
                   nota_c4[c4_cont][1]=b;
                   c4_cont++;
                }
                else if(nota =="d1"){
                   nota_d1[d1_cont][0]=a;
                   nota_d1[d1_cont][1]=b;
                   d1_cont++;
                } else if(nota =="d2"){
                   nota_d2[d2_cont][0]=a;
                   nota_d2[d2_cont][1]=b;
                   d2_cont++;
                } else if(nota =="d3"){
                   nota_d3[d3_cont][0]=a;
                   nota_d3[d3_cont][1]=b;
                   d3_cont++;
                } else if(nota =="d4"){
                   nota_d4[d4_cont][0]=a;
                   nota_d4[d4_cont][1]=b;
                   d4_cont++;
                }
                else if(nota =="D1"){
                   nota_D1[D1_cont][0]=a;
                   nota_D1[D1_cont][1]=b;
                   D1_cont++;
                } else if(nota =="D2"){
                   nota_D2[D2_cont][0]=a;
                   nota_D2[D2_cont][1]=b;
                   D2_cont++;
                } else if(nota =="D3"){
                   nota_D3[D3_cont][0]=a;
                   nota_D3[D3_cont][1]=b;
                   D3_cont++;
                } else if(nota =="D4"){
                   nota_D4[D4_cont][0]=a;
                   nota_D4[D4_cont][1]=b;
                   D4_cont++;
                }
                else if(nota =="E1"){
                   nota_E1[E1_cont][0]=a;
                   nota_E1[E1_cont][1]=b;
                   E1_cont++;
                }else if(nota =="E2"){
                   nota_E2[E2_cont][0]=a;
                   nota_E2[E2_cont][1]=b;
                   E2_cont++;
                } else if(nota =="E3"){
                   nota_E3[E3_cont][0]=a;
                   nota_E3[E3_cont][1]=b;
                   E3_cont++;
                } else if(nota =="E4"){
                   nota_E4[E4_cont][0]=a;
                   nota_E4[E4_cont][1]=b;
                   E4_cont++;
                }
                else if(nota =="f1"){
                   nota_f1[f1_cont][0]=a;
                   nota_f1[f1_cont][1]=b;
                   f1_cont++;
                } else if(nota =="f2"){
                   nota_f2[f2_cont][0]=a;
                   nota_f2[f2_cont][1]=b;
                   f2_cont++;
                } else if(nota =="f3"){
                   nota_f3[f3_cont][0]=a;
                   nota_f3[f3_cont][1]=b;
                   f3_cont++;
                } else if(nota =="f4"){
                   nota_f4[f4_cont][0]=a;
                   nota_f4[f4_cont][1]=b;
                   f4_cont++;
                }
                else if(nota =="F1"){
                   nota_F1[F1_cont][0]=a;
                   nota_F1[F1_cont][1]=b;
                   F1_cont++;
                } else if(nota =="F2"){
                   nota_F2[F2_cont][0]=a;
                   nota_F2[F2_cont][1]=b;
                   F2_cont++;
                } else if(nota =="F3"){
                   nota_F3[F3_cont][0]=a;
                   nota_F3[F3_cont][1]=b;
                   F3_cont++;
                } else if(nota =="F4"){
                   nota_F4[F4_cont][0]=a;
                   nota_F4[F4_cont][1]=b;
                   F4_cont++;
                }
                else if(nota =="g1"){
                   nota_g1[g1_cont][0]=a;
                   nota_g1[g1_cont][1]=b;
                   g1_cont++;
                } else if(nota =="g2"){
                   nota_g2[g2_cont][0]=a;
                   nota_g2[g2_cont][1]=b;
                   g2_cont++;
                } else if(nota =="g3"){
                   nota_g3[g3_cont][0]=a;
                   nota_g3[g3_cont][1]=b;
                   g3_cont++;
                } else if(nota =="g4"){
                   nota_g4[g4_cont][0]=a;
                   nota_g4[g4_cont][1]=b;
                   g4_cont++;
                }
                else if(nota =="G1"){
                   nota_G1[G1_cont][0]=a;
                   nota_G1[G1_cont][1]=b;
                   G1_cont++;
                }else if(nota =="G2"){
                   nota_G2[G2_cont][0]=a;
                   nota_G2[G2_cont][1]=b;
                   G2_cont++;
                } else if(nota =="G3"){
                   nota_G3[G3_cont][0]=a;
                   nota_G3[G3_cont][1]=b;
                   G3_cont++;
                } else if(nota =="G4"){
                   nota_G4[G4_cont][0]=a;
                   nota_G4[G4_cont][1]=b;
                   G4_cont++;
                }
            }
        }
        
        //se almacena en el arbol de busqueda las llaves con sus valores respectivos.
        arbol.put(na1, nota_a1);
        arbol.put(na2, nota_a2);
        arbol.put(na3, nota_a3);
        arbol.put(na4, nota_a4);
        arbol.put(nA1, nota_A1);
        arbol.put(nA2, nota_A2);
        arbol.put(nA3, nota_A3);
        arbol.put(nA4, nota_A4);
        arbol.put(nB1, nota_B1);
        arbol.put(nB2, nota_B2);
        arbol.put(nB3, nota_B3);
        arbol.put(nB3, nota_B3);
        arbol.put(nc1, nota_c1);
        arbol.put(nc2, nota_c2);
        arbol.put(nc3, nota_c3);
        arbol.put(nc4, nota_c4);
        arbol.put(nC1, nota_C1);
        arbol.put(nC2, nota_C2);
        arbol.put(nC3, nota_C3);
        arbol.put(nC4, nota_C4);
        arbol.put(nd1, nota_d1);
        arbol.put(nd2, nota_d2);
        arbol.put(nd3, nota_d3);
        arbol.put(nd4, nota_d4);
        arbol.put(nD1, nota_D1);
        arbol.put(nD2, nota_D2);
        arbol.put(nD3, nota_D3);
        arbol.put(nD4, nota_D4);
        arbol.put(nE1, nota_E1);
        arbol.put(nE2, nota_E2);
        arbol.put(nE3, nota_E3);
        arbol.put(nE4, nota_E4);
        arbol.put(nf1, nota_f1);
        arbol.put(nf2, nota_f2);
        arbol.put(nf3, nota_f3);
        arbol.put(nf4, nota_f4);
        arbol.put(nF1, nota_F1);
        arbol.put(nF2, nota_F2);
        arbol.put(nF3, nota_F3);
        arbol.put(nF4, nota_F4);
        arbol.put(ng1, nota_g1);
        arbol.put(ng2, nota_g2);
        arbol.put(ng3, nota_g3);
        arbol.put(ng4, nota_g4);
        arbol.put(nG1, nota_G1);
        arbol.put(nG2, nota_G2);
        arbol.put(nG3, nota_G3);
        arbol.put(nG4, nota_G4);  
    }
    public int noba(String cadena){//regresa el numero de variables utiles en una cadena de texto, este numero es igual a la cantidad de espacios en blanco mas uno.
      
      char[] caracteres = cadena.toCharArray();
      int largo = caracteres.length;
      int cantidad=0;
      boolean control=true;
      char caracter;
      for(int index =0; index< largo; index++){
          caracter = caracteres[index];
          if(control==true && caracter==' '){
              cantidad++;
              control=false;
          }else if(control==false && caracter!=' '){
              control=true;
          }
       
          
      }
      cantidad++;
      return cantidad;
    }
    
    public int cuerda;
    public int traste;
    public String nota;
    
    public void obtener (String txt, int esp, int coor){// este metodo obtiene la nota del texto y entrega el numero de cuerda y traste solisitado.
        nota ="";
        cuerda =0;
        traste=0;
      char[] caracteres = txt.toCharArray();
      int largo = caracteres.length;
      int cantidad=0;
      boolean control=true;
      char caracter;
    
      int index =0;
     while(cantidad <= esp){
         caracter = caracteres[index];
         if(control==true && caracter==' '){
              cantidad++;
              control=false;
          }else if(caracter!=' '){
              control=true;
              if(cantidad == esp && caracter != '|'){
                  //se concatena al estring la nota
                  nota +=caracter;             
              }else if(cantidad == esp && caracter =='|'){
                  nota +=caracter;
                  
                  
              }
          }
         
         
         index++;
     } 
     
     //despues de obtener la info necesaria se hace lo siguiente, se compara para determinar si se quiere buscar un |, || o una nota, si es una nota se regresa
    //la cuerda con su traste sino es una nota se rergesan los valores que indcan si es un | o un ||

       if(nota.equals("|")) {
           cuerda =6;
           traste =19;
       }else if(nota.equals("||")){
           cuerda=7;
           traste =19;
              
       }else if(nota.equals("|")==false&&nota.equals("||")==false){
              
           int[][] vector = arbol.get(nota);
           cuerda = vector[coor][0];
           traste = vector[coor][1];
       }
        
        
    }
    
}